#include "junix.h"
using namespace std;

class A {
	public:
		A();
		~A();
		void hello();

	private:
		class B;
		B *pimpl_;
};

class A::B {
	public:
		void hello() {
			std::cout<<"B::hello()\n";
		}
};

A::A() {
	pimpl_ = new B;
}

A::~A() {
	delete pimpl_;
}

void A::hello() {
	pimpl_->hello();
}

int main(int argc, char **argv)
{
	A a;
	a.hello();
}
